package com.shaozj.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shaozj.system.model.entity.SysMenu;
import com.shaozj.system.model.form.MenuForm;
import com.shaozj.system.model.query.MenuQuery;
import com.shaozj.system.model.vo.MenuOption;
import com.shaozj.system.model.vo.MenuVO;
import com.shaozj.system.model.vo.RouteVO;

import java.util.List;

public interface SysMenuService extends IService<SysMenu> {

    /**
     * 查询菜单列表
     * @param query
     * @return
     */
    List<MenuVO> getMenuList(MenuQuery query, Long userId);

    /**
     * 获取资源树
     * @return
     */
    List<MenuOption> getResoutceList();

    /**
     * 菜单下拉列表
     * @return
     */
    List<MenuOption> getMenuOptions();

    /**
     * 保存菜单
     * @param menuForm
     * @return
     */
    boolean saveMenu(MenuForm menuForm);

    /**
     * 获取路由列表
     * @return
     */
    List<RouteVO> getRouteList(Long userId);

    /**
     * 获取菜单表单数据
     * @param menuId
     * @return
     */
    MenuForm getMenuForm(Long menuId);

    /**
     * 修改菜单显示隐藏状态
     * @param menuId
     * @return
     */
    boolean updateMenuVisible(Long menuId, Integer visibel);

    /**
     * 删除菜单
     * @param id
     * @return
     */
    boolean deleteMenu(Long id);

}
